#pragma once
#ifndef __G_COMPONENT_SCENE_H__
#define __G_COMPONENT_SCENE_H__

#include <string>
#include <vector>

#include "GTypes.h"
#include "GComponent.h"
#include "GCoordFrame3D.h"
#include "GBoxAAligned.h"
#include "GInitializable.h"

namespace GEngine
{

	class GComponentScene : public GComponent
	{
	private:
		bool					FrameChanged;
		GMath::GMatrix4x4		WorldTransform;

		GMath::GCoordFrame3D	LocalCoordFrame;

	protected:
		virtual void			OnTransformChange() OVERRIDE;

	public:
								GComponentScene();
								~GComponentScene();

		GMath::GVector3			GetWorldRight() const;
		GMath::GVector3			GetWorldUp() const;
		GMath::GVector3			GetWorldFront() const;

		const GMath::GMatrix4x4&	GetWorldTransform() const;

		virtual bool			Update(float FrameTime) OVERRIDE;
	};
}


#endif